#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

//int main()
//{
//    int i = 0;
//    float high = 0.0;
//    float sum = 0.0;
//    for (i = 0; i < 5; i++)
//    {
//        scanf("%f", &high);
//        sum += high;
//    }
//    printf("%.2f\n", sum / 5.0);
//
//    return 0;
//}

//int main()
//{
//    int i = 0;
//    float high[5] = { 0 };
//    float sum = 0.0;
//    for (i = 0; i < 5; i++)
//    {
//        scanf("%f", &high[i]);
//        sum += high[i];
//    }
//    printf("%.2f\n", sum / 5.0);
//
//    return 0;
//}

#include <stdio.h>

//int main()
//{
//    int state = 0;
//    while (~scanf("%d", &state))
//    {
//        switch (state)
//        {
//        case 200:
//            printf("OK\n");
//            break;
//        case 202:
//            printf("Accepted\n");
//            break;
//        case 400:
//            printf("Bad Request\n");
//            break;
//        case 403:
//            printf("Forbidden\n");
//            break;
//        case 404:
//            printf("Not Found\n");
//            break;
//        case 500:
//            printf("Internal Server Error\n");
//            break;
//        case 502:
//            printf("Bad Gateway\n");
//            break;
//
//        }
//    }
//    return 0;
//}

#include <stdio.h>

int main()
{
    int n = 0;
    while (scanf("%d", &n) != EOF)
    {
        int i = 1;
        //打印的行数
        for (i = 1; i <= n; i++)
        {
            //打印一行的内容
            int j = 0;
            for (j = 1; j <= i; j++)
            {
                printf("%d ", j);
            }
            printf("\n");
        }
    }
    return 0;
}
